1
[1] 1
Full table
The GFP/iPSC/RFP columns are the number of peaks with the motif associated (by distance) to the gene
Ratio is GFP/RFP
Delta is GFP - RFP
If log2FC is positive, then the expression of the gene is higher in RPE vs iPSC
TF_gene_stats %>% dplyr::select(motif = motif_core, Gene:padj__RPE_vs_iPSC, motif_full = motif) %>% DT::datatable( filter = list(position = 'top', clear = FALSE),
extensions = 'Buttons', options = list(
lengthMenu = list(c(5, 15, 30, 60, 100, -1), list('5', '15', '30', '60', '100', 'All')),
dom = 'Bfrtip',
buttons = c('copy', 'csv', 'excel', 'pageLength')
))
It seems your data is too big for client-side DataTables. You may consider server-side processing: https://rstudio.github.io/DT/server.htmlIt seems your data is too big for client-side DataTables. You may consider server-side processing: https://rstudio.github.io/DT/server.html
count number of genes associated with each TFBS
TF_gene_stats %>% group_by(motif_core) %>% summarise(count = n(), Gene = paste(Gene, collapse = ',') ) %>% arrange(-count) %>% DT::datatable()
most common genes associated with TF
TF_gene_stats %>% group_by(Gene) %>% summarise(count = n(), motif = paste(motif_core, collapse=',')) %>% arrange(-count) %>% DT::datatable( filter = list(position = 'top', clear = FALSE))
First attempt at network
No more than 10 genes assigned to a single TF
Red are the homer ID’ed TF(BS)
Pink are genes labelled as TF by GO term (but not ID’ed by homer)
If you hover you get the log2FC
You can zoom in and out
Clicking on a node gives you all the other nodes within 2 edges
library(visNetwork)
TF_gene_stats_n <- TF_gene_stats %>%
# filter(!grepl('GATA', motif_core)) %>%
group_by(motif_core) %>%
top_n(10, delta) %>% # no more than n by tF
#filter(!Gene %in% c('FZD8','OPCML','PFKP','NRIP1','TSHZ3', 'SOX6')) %>% # trimming out most common genes between TF
ungroup()
TF <- TF_gene_stats_n %>%
distinct(motif_core) %>%
rename(label = motif_core)
genes <- TF_gene_stats_n %>%
distinct(Gene) %>%
rename(label = Gene)
nodes <- full_join(TF, genes, by = "label") %>% arrange(label) %>% rowid_to_column("id") %>% mutate(group = case_when(label %in% TF$label ~ 'TF',
TRUE ~ 'Gene'),
shape = 'box') %>%
left_join(., expression %>%
select(Gene, value = log2FoldChange__RPE_vs_iPSC, goTF = TF) %>%
unique(), by = c("label" = "Gene")) %>%
mutate(title = paste0('Gene: ', label, '<br>log2FC: ', round(value,2))) %>%
mutate(group = case_when(group == 'TF' ~ 'TF',
goTF == 'Yes' ~ 'goTF',
TRUE ~ 'Gene'))
edges <- TF_gene_stats_n %>%
select(TF = motif_core, Gene, weight = log2FoldChange__RPE_vs_iPSC) %>%
unique() %>%
left_join(nodes, by = c("TF" = "label")) %>%
rename(from = id) %>%
left_join(nodes, by = c("Gene" = "label")) %>%
rename(to = id) %>%
ungroup() %>%
select(from, to, weight)
visNetwork(nodes, edges, height = "700px", width = "100%") %>%
visGroups(groupname = 'TF', color='red') %>%
visGroups(groupname = 'goTF', color = 'pink') %>%
visOptions(highlightNearest = list(enabled = T, degree = 2),
nodesIdSelection = TRUE) %>%
visPhysics(stabilization = TRUE) %>%
visEdges(smooth = FALSE) %>%
visInteraction(navigationButtons = TRUE)
LS0tCnRpdGxlOiBBbmFseXNpcyBvZiBURkJTIDwtPiBHZW5lIEludGVyYWN0aW9uIHZpYSBQZWFrCmF1dGhvcjogRGF2aWQgTWNHYXVnaGV5CmRhdGU6ICdgciBmb3JtYXQoU3lzLkRhdGUoKSwgIiVZLSVtLSVkIilgJwpvdXRwdXQ6IAogIGh0bWxfbm90ZWJvb2s6CiAgICB0aGVtZTogZmxhdGx5CiAgICB0b2M6IHRydWUKLS0tCgpgYGB7cn0KbGlicmFyeSh0aWR5dmVyc2UpCnBlYWsgPC0gcmVhZF90c3YoJy9Wb2x1bWVzL2RhdGEvcHJvamVjdHMvbmVpL2h1Zm5hZ2VsL2lQU0NfUlBFX0FUQUNfU2VxL3BlYWtfZnVsbC9hbGxfY29tbW9uX3BlYWtzLmJsYWNrTGlzdGVkLm5hcnJvd1BlYWsuY2xvc2VzdFRTU19faW50ZXJlc3RpbmdfaG9tZXJfbW90aWYuYmVkLmd6JywgY29sX25hbWVzID0gRikKZXhwcmVzc2lvbiA8LSByZWFkX2Nzdignfi9naXQvaXBzY19ycGVfUk5BLXNlcS9kYXRhL2xzVFBNX2J5X0xpbmVfd2l0aF9EaWZmX0V4cC50c3YnKQoKY29sbmFtZXMocGVhaykgPC0gYygnY2hyb20nLCdzdGFydCcsJ3N0b3AnLCd0eXBlJywnbWFjczJfc2NvcmUnLCdzdHJhbmQnLCd0aGlja1N0YXJ0JywndGhpY2tTdG9wJywnUkdCJywnRGlzdGFuY2VfdG9fR2VuZScsJ0dlbmUnLCdEZXNjcmlwdGlvbicsJ2Nocm9tX21vdGlmJywnc3RhcnRfbW90aWYnLCdzdG9wX21vdGlmJywnbW90aWYnLCdtb3RpZl9zY29yZScsJ3N0cmFuZF9tb3RpZicpCgptb3RpZnMgPC0gcGVhayRtb3RpZiAlPiUgdW5pcXVlKCkKCiMgY3JlYXRlIGdlbmUgY2VudHJpYyBpbmZvIG9uIHBlYWsvbW90aWYgYW5kIGRpZmZlcmVudGlhbCBnZW5lIGV4cHJlc3Npb24gaVBTQyA8LT4gUlBFCmdyb3VwZWRfc3RhdHMgPC0gbGlzdCgpCgpmb3IgKGkgaW4gbW90aWZzKXsKICBvdXQgPC0gcGVhayAlPiUgCiAgICBmaWx0ZXIoIWlzLm5hKEdlbmUpKSAlPiUgIyByZW1vdmUgTkEgZ2VuZXMgd2hlcmUgdGhlIHBlYWsgZGlkbid0IGdldCBhIG1hdGNoIChubyBnZW5lcyB3aXRoaW4gNTAwa2Igb2YgYSBwZWFrKQogICAgZmlsdGVyKG1vdGlmID09IGkpICU+JSAjIG9ubHkgcmV0YWluIHRoZSBtb3RpZiBURkJTIGhvbWVyIGhpdHMKICAgIGdyb3VwX2J5KHR5cGUsIGNocm9tLCBzdGFydCwgc3RvcCwgR2VuZSkgJT4lICMgZ3JvdXAgYnkgR0ZQL1JGUCxpUFNDLCB0aGUgbWFjczIgcGVhaywgYW5kIHRoZSBnZW5lCiAgICBzdW1tYXJpc2UoTnVtX1RGQlNfbW90aWZzPW4oKSkgJT4lICAjIGNvdW50IHRvdGFsIG51bWJlciBvZiBtb3RpZnMKICAgIGdyb3VwX2J5KHR5cGUsIEdlbmUpICU+JSAjIGdyb3VwIG5vdyBieSBHRlAvUkZQL0lQU0MgYW5kIGdlbmUKICAgIHN1bW1hcmlzZShUb3RhbF9URkJTX21vdGlmcyA9IHN1bShOdW1fVEZCU19tb3RpZnMpLCBOdW1fUGVha3MgPSBuKCkpICU+JSAjIG5vdyBhZGQgbnVtIG9mIHBlYWtzIG5lYXIgZ2VuZQogICAgc2VsZWN0KHR5cGUsIEdlbmUsIFRvdGFsX1RGQlNfbW90aWZzLCBOdW1fUGVha3MpCiAgZ3JvdXBlZF9zdGF0c1tbaV1dIDwtIG91dAogIHByaW50KGkpCn0KCiMgZnVydGhlciBjdXQgZG93biB0byBtb3N0IGludGVyZXN0aW5nIGdlbmVzIGJ5IGRpZmZlcmVudGlhbCBwZWFrIGFjdGl2aXR5IGFuZCAKIyBleHByZXNzaW9uIGJ5IFRGCgpURl9nZW5lX3N0YXRzX2xpc3QgPC0gbGlzdCgpCgpmb3IgKGkgaW4gbW90aWZzKXsKICAKICAjIElEIGRpZmZlcmVudGlhbGx5IHBlYWsgYWN0aXZpdHkgYXJvdW5kIGdlbmVzIGZvciBhIFRGCiAgb3V0IDwtIGdyb3VwZWRfc3RhdHNbW2ldXSAlPiUgc2VsZWN0KC1Ub3RhbF9URkJTX21vdGlmcykgJT4lIAogICAgc3ByZWFkKHR5cGUsIE51bV9QZWFrcykKICBvdXRbaXMubmEob3V0KV0gPC0gMAogIG91dCA8LSBvdXQgJT4lIAogICAgbXV0YXRlKHJhdGlvID0gR0ZQL2lQU0MsIGRlbHRhID0gR0ZQIC0gaVBTQykgJT4lIAogICAgYXJyYW5nZSgtZGVsdGEpICU+JSAKICAgIGxlZnRfam9pbihleHByZXNzaW9uICU+JSAKICAgICAgICAgICAgICAgIHNlbGVjdChHZW5lLCBsb2cyRm9sZENoYW5nZV9fUlBFX3ZzX2lQU0MsIHBhZGpfX1JQRV92c19pUFNDKSAlPiUgCiAgICAgICAgICAgICAgICB1bmlxdWUoKSkgJT4lIAogICAgZmlsdGVyKCFpcy5uYShwYWRqX19SUEVfdnNfaVBTQyksIAogICAgICAgICAgIGFicyhsb2cyRm9sZENoYW5nZV9fUlBFX3ZzX2lQU0MpID4gMSwgCiAgICAgICAgICAgcGFkal9fUlBFX3ZzX2lQU0MgPCAwLjAxKSAlPiUgCiAgICBmaWx0ZXIoZGVsdGEgPiAxLCByYXRpbyA+IDEuNSkgIyBvbmx5IGtlZXAgCiAgVEZfZ2VuZV9zdGF0c19saXN0W1tpXV0gPC0gb3V0CiAgcHJpbnQoaSkKfQoKVEZfZ2VuZV9zdGF0cyA8LSBiaW5kX3Jvd3MoVEZfZ2VuZV9zdGF0c19saXN0LCAuaWQgPSAnbW90aWYnKSAlPiUgcm93d2lzZSgpICU+JSBtdXRhdGUobW90aWZfY29yZSA9IHRvdXBwZXIoZ3N1YignXFwoLip8MTEtR0dHVEdUR1QsQmVzdEd1ZXNzOicsJycsbW90aWYpKSkgJT4lIHVuZ3JvdXAoKQpgYGAKCiMgRnVsbCB0YWJsZQpUaGUgR0ZQL2lQU0MvUkZQIGNvbHVtbnMgYXJlIHRoZSBudW1iZXIgb2YgcGVha3Mgd2l0aCB0aGUgbW90aWYgYXNzb2NpYXRlZCAoYnkgZGlzdGFuY2UpIHRvIHRoZSBnZW5lCgpSYXRpbyBpcyBHRlAvUkZQCgpEZWx0YSBpcyBHRlAgLSBSRlAKCklmIGxvZzJGQyBpcyBwb3NpdGl2ZSwgdGhlbiB0aGUgZXhwcmVzc2lvbiBvZiB0aGUgZ2VuZSBpcyBoaWdoZXIgaW4gUlBFIHZzIGlQU0MKYGBge3J9ClRGX2dlbmVfc3RhdHMgJT4lIGRwbHlyOjpzZWxlY3QobW90aWYgPSBtb3RpZl9jb3JlLCBHZW5lOnBhZGpfX1JQRV92c19pUFNDLCBtb3RpZl9mdWxsID0gbW90aWYpICU+JSBEVDo6ZGF0YXRhYmxlKCBmaWx0ZXIgPSBsaXN0KHBvc2l0aW9uID0gJ3RvcCcsIGNsZWFyID0gRkFMU0UpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0ZW5zaW9ucyA9ICdCdXR0b25zJywgb3B0aW9ucyA9IGxpc3QoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aE1lbnUgPSBsaXN0KGMoNSwgMTUsIDMwLCA2MCwgMTAwLCAtMSksIGxpc3QoJzUnLCAnMTUnLCAnMzAnLCAnNjAnLCAnMTAwJywgJ0FsbCcpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9tID0gJ0JmcnRpcCcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1dHRvbnMgPSBjKCdjb3B5JywgJ2NzdicsICdleGNlbCcsICdwYWdlTGVuZ3RoJykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpCmBgYAoKIyBjb3VudCBudW1iZXIgb2YgZ2VuZXMgYXNzb2NpYXRlZCB3aXRoIGVhY2ggVEZCUwpgYGB7cn0KVEZfZ2VuZV9zdGF0cyAlPiUgZ3JvdXBfYnkobW90aWZfY29yZSkgJT4lIHN1bW1hcmlzZShjb3VudCA9IG4oKSwgR2VuZSA9IHBhc3RlKEdlbmUsIGNvbGxhcHNlID0gJywnKSApICU+JSBhcnJhbmdlKC1jb3VudCkgJT4lIERUOjpkYXRhdGFibGUoKQpgYGAKIyBtb3N0IGNvbW1vbiBnZW5lcyBhc3NvY2lhdGVkIHdpdGggVEYKYGBge3J9ClRGX2dlbmVfc3RhdHMgJT4lIGdyb3VwX2J5KEdlbmUpICU+JSBzdW1tYXJpc2UoY291bnQgPSBuKCksIG1vdGlmID0gcGFzdGUobW90aWZfY29yZSwgY29sbGFwc2U9JywnKSkgJT4lIGFycmFuZ2UoLWNvdW50KSAlPiUgIERUOjpkYXRhdGFibGUoIGZpbHRlciA9IGxpc3QocG9zaXRpb24gPSAndG9wJywgY2xlYXIgPSBGQUxTRSkpCmBgYAoKIyBGaXJzdCBhdHRlbXB0IGF0IG5ldHdvcmsKTm8gbW9yZSB0aGFuIDEwIGdlbmVzIGFzc2lnbmVkIHRvIGEgc2luZ2xlIFRGCgpSZWQgYXJlIHRoZSBob21lciBJRCdlZCBURihCUykKClBpbmsgYXJlIGdlbmVzIGxhYmVsbGVkIGFzIFRGIGJ5IEdPIHRlcm0gKGJ1dCBub3QgSUQnZWQgYnkgaG9tZXIpCgpJZiB5b3UgaG92ZXIgeW91IGdldCB0aGUgbG9nMkZDCgpZb3UgY2FuIHpvb20gaW4gYW5kIG91dAoKQ2xpY2tpbmcgb24gYSBub2RlIGdpdmVzIHlvdSBhbGwgdGhlIG90aGVyIG5vZGVzIHdpdGhpbiAyIGVkZ2VzCmBgYHtyLCBmaWcuaGVpZ2h0PTYsIGZpZy53aWR0aD02fQpsaWJyYXJ5KHZpc05ldHdvcmspClRGX2dlbmVfc3RhdHNfbiA8LSBURl9nZW5lX3N0YXRzICU+JSAKICAjIGZpbHRlcighZ3JlcGwoJ0dBVEEnLCBtb3RpZl9jb3JlKSkgJT4lIAogIGdyb3VwX2J5KG1vdGlmX2NvcmUpICU+JSAKICB0b3BfbigxMCwgZGVsdGEpICU+JSAjIG5vIG1vcmUgdGhhbiBuIGJ5IHRGCiAgI2ZpbHRlcighR2VuZSAlaW4lIGMoJ0ZaRDgnLCdPUENNTCcsJ1BGS1AnLCdOUklQMScsJ1RTSFozJywgJ1NPWDYnKSkgJT4lICMgdHJpbW1pbmcgb3V0IG1vc3QgY29tbW9uIGdlbmVzIGJldHdlZW4gVEYKICB1bmdyb3VwKCkKClRGIDwtIFRGX2dlbmVfc3RhdHNfbiAlPiUKICBkaXN0aW5jdChtb3RpZl9jb3JlKSAlPiUKICByZW5hbWUobGFiZWwgPSBtb3RpZl9jb3JlKQoKZ2VuZXMgPC0gVEZfZ2VuZV9zdGF0c19uICU+JQogIGRpc3RpbmN0KEdlbmUpICU+JQogIHJlbmFtZShsYWJlbCA9IEdlbmUpCgpub2RlcyA8LSBmdWxsX2pvaW4oVEYsIGdlbmVzLCBieSA9ICJsYWJlbCIpICU+JSAgYXJyYW5nZShsYWJlbCkgJT4lIHJvd2lkX3RvX2NvbHVtbigiaWQiKSAlPiUgbXV0YXRlKGdyb3VwID0gY2FzZV93aGVuKGxhYmVsICVpbiUgVEYkbGFiZWwgfiAnVEYnLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUUlVFIH4gJ0dlbmUnKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGFwZSA9ICdib3gnKSAlPiUgCiAgbGVmdF9qb2luKC4sIGV4cHJlc3Npb24gJT4lIAogICAgICAgICAgICAgIHNlbGVjdChHZW5lLCB2YWx1ZSA9IGxvZzJGb2xkQ2hhbmdlX19SUEVfdnNfaVBTQywgZ29URiA9IFRGKSAlPiUgCiAgICAgICAgICAgICAgdW5pcXVlKCksIGJ5ID0gYygibGFiZWwiID0gIkdlbmUiKSkgJT4lIAogIG11dGF0ZSh0aXRsZSA9IHBhc3RlMCgnR2VuZTogJywgbGFiZWwsICc8YnI+bG9nMkZDOiAnLCByb3VuZCh2YWx1ZSwyKSkpICU+JSAKICBtdXRhdGUoZ3JvdXAgPSBjYXNlX3doZW4oZ3JvdXAgPT0gJ1RGJyB+ICdURicsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGdvVEYgPT0gJ1llcycgfiAnZ29URicsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIFRSVUUgfiAnR2VuZScpKQoKCgoKZWRnZXMgPC0gVEZfZ2VuZV9zdGF0c19uICU+JSAgCiAgc2VsZWN0KFRGID0gbW90aWZfY29yZSwgR2VuZSwgd2VpZ2h0ID0gbG9nMkZvbGRDaGFuZ2VfX1JQRV92c19pUFNDKSAlPiUgCiAgdW5pcXVlKCkgJT4lIAogIGxlZnRfam9pbihub2RlcywgYnkgPSBjKCJURiIgPSAibGFiZWwiKSkgJT4lIAogIHJlbmFtZShmcm9tID0gaWQpICU+JSAKICBsZWZ0X2pvaW4obm9kZXMsIGJ5ID0gYygiR2VuZSIgPSAibGFiZWwiKSkgJT4lIAogIHJlbmFtZSh0byA9IGlkKSAlPiUgCiAgdW5ncm91cCgpICU+JSAKICBzZWxlY3QoZnJvbSwgdG8sIHdlaWdodCkgCgp2aXNOZXR3b3JrKG5vZGVzLCBlZGdlcywgaGVpZ2h0ID0gIjcwMHB4Iiwgd2lkdGggPSAiMTAwJSIpICU+JSAKICB2aXNHcm91cHMoZ3JvdXBuYW1lID0gJ1RGJywgY29sb3I9J3JlZCcpICU+JSAKICB2aXNHcm91cHMoZ3JvdXBuYW1lID0gJ2dvVEYnLCBjb2xvciA9ICdwaW5rJykgJT4lIAogIHZpc09wdGlvbnMoaGlnaGxpZ2h0TmVhcmVzdCA9IGxpc3QoZW5hYmxlZCA9IFQsIGRlZ3JlZSA9IDIpLAogICAgICAgICAgICAgbm9kZXNJZFNlbGVjdGlvbiA9IFRSVUUpICU+JSAKICB2aXNQaHlzaWNzKHN0YWJpbGl6YXRpb24gPSBUUlVFKSAlPiUgCiAgdmlzRWRnZXMoc21vb3RoID0gRkFMU0UpICU+JSAKICB2aXNJbnRlcmFjdGlvbihuYXZpZ2F0aW9uQnV0dG9ucyA9IFRSVUUpCmBgYAoK